package com.rightsidetech.system.service;

import com.github.pagehelper.PageInfo;
import com.rightsidetech.commom.base.PageRequest;
import com.rightsidetech.commom.base.ResponseData;
import com.rightsidetech.system.dtos.request.store.*;
import com.rightsidetech.system.dtos.response.store.*;
import com.rightsidetech.system.entity.store.SysStoreIntegralRecord;
import com.rightsidetech.system.entity.store.SysStoreIntegralRecordDetail;

import java.util.List;

public interface SysStoreIntegralService {

    ResponseData<PageInfo<StoreIntegralResp>> page(StoreIntegralPageReq req);

    List<StoreIntegralResp> selectIntegralList(StoreIntegralPageReq req);

    ResponseData awardIntegral(StoreAwardIntegralReq req,String operateName,Long operateId) throws Exception;

    ResponseData<PageInfo<StoreIntegralDetailResp>> detailPage(StoreIntegralDetailReq req);

    ResponseData<PageInfo<StoreIntegralRecordResp>> recordPage(StoreIntegralRecordReq req);

    List<StoreIntegralRecordResp> selectList(StoreIntegralRecordReq req);

    int insert(SysStoreIntegralRecord record);

    ResponseData<PageInfo<StoreAppIntegralResp>> storeAppPage(PageRequest req,Long storeId);

    void insertCommodityIntegral(StoreCommodityIntegralReq intReq,Byte operateType);

    ResponseData detailAnDetail(Long id,Long areaId);

    SysStoreIntegralRecord selectByOrderNo(String orderNo);

    List<SysStoreIntegralRecordDetail> selectByRecordId(Long recordId);

    Long findIntegralByDate(String date, Long storeId);

    Long findCurrentPointByStoreId(Long storeId);

    void integralSave(StoreCommodityIntegralReq intReq);
}
